home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 53 / PC Actual CD 53.iso / Demos / Fax / Faxgate / intrafax / Data / UploadFileIE.cab / UploadFileIE.class (.txt)
Encoding:
Java Class File  |  1997-01-29  |  4.1 KB  |  152 lines

  1. import java.applet.Applet;
  2. import java.applet.AppletContext;
  3. import java.awt.FileDialog;
  4. import java.awt.Frame;
  5. import java.awt.Graphics;
  6. import java.awt.Window;
  7. import java.io.File;
  8. import java.io.FileInputStream;
  9. import java.io.OutputStream;
  10. import java.net.URL;
  11. import java.net.URLConnection;
  12.  
  13. public class UploadFileIE extends Applet implements Runnable {
  14.    private String m_upload_file_request = "";
  15.    private String m_call_this_when_done_request = "";
  16.    private final String PARAM_upload_file_request = "upload_file_request";
  17.    private final String PARAM_call_this_when_done_request = "call_this_when_done_request";
  18.    private static byte[] buffer = new byte[10240];
  19.    private static Thread m_dlg_thread;
  20.  
  21.    public void stop() {
  22.       if (m_dlg_thread != null) {
  23.          if (m_dlg_thread.isAlive()) {
  24.             m_dlg_thread.stop();
  25.          }
  26.  
  27.          m_dlg_thread = null;
  28.       }
  29.  
  30.    }
  31.  
  32.    public void create_open_file_dlg() {
  33.       if (m_dlg_thread == null || !m_dlg_thread.isAlive()) {
  34.          if (m_dlg_thread != null) {
  35.             if (m_dlg_thread.isAlive()) {
  36.                m_dlg_thread.stop();
  37.             }
  38.  
  39.             m_dlg_thread = null;
  40.          }
  41.  
  42.          m_dlg_thread = new Thread(this);
  43.          m_dlg_thread.start();
  44.       }
  45.    }
  46.  
  47.    public void paint(Graphics var1) {
  48.    }
  49.  
  50.    public String[][] getParameterInfo() {
  51.       String[][] var1 = new String[][]{{"upload_file_request", "String", "This request will be sent to WebFax server when uploading a file"}, {"call_this_when_done_request", "String", "This request will be sent to WebFax server when uploading has done"}};
  52.       return var1;
  53.    }
  54.  
  55.    public void destroy() {
  56.    }
  57.  
  58.    public void start() {
  59.    }
  60.  
  61.    public String getAppletInfo() {
  62.       return "Name: UploadFileIE\r\n" + "Author: Boris Erlikhman\r\n" + "Technology Workshop, Inc. All rights reserved";
  63.    }
  64.  
  65.    public void run() {
  66.       try {
  67.          Frame var3 = new Frame();
  68.          FileDialog var10 = new FileDialog(var3, "Select file to upload", 0);
  69.          ((Window)var10).show();
  70.          String var2 = var10.getFile();
  71.          String var1 = var10.getDirectory();
  72.          Object var8 = null;
  73.          Object var11 = null;
  74.          if (var2.compareTo("") != 0) {
  75.             this.upload_file(var1 + var2);
  76.             return;
  77.          }
  78.       } catch (InterruptedException var6) {
  79.          String var9 = ((Throwable)var6).getMessage();
  80.          ((Applet)this).showStatus(var9);
  81.          return;
  82.       } catch (Exception var7) {
  83.          String var4 = ((Throwable)var7).getMessage();
  84.          ((Applet)this).showStatus(var4);
  85.       }
  86.  
  87.    }
  88.  
  89.    public void init() {
  90.       String var1 = ((Applet)this).getParameter("upload_file_request");
  91.       if (var1 != null) {
  92.          this.m_upload_file_request = var1;
  93.       }
  94.  
  95.       var1 = ((Applet)this).getParameter("call_this_when_done_request");
  96.       if (var1 != null) {
  97.          this.m_call_this_when_done_request = var1;
  98.       }
  99.  
  100.       ((Applet)this).resize(1, 1);
  101.    }
  102.  
  103.    private void upload_file(String var1) {
  104.       try {
  105.          URL var2 = ((Applet)this).getDocumentBase();
  106.          URL var16 = new URL(var2, this.m_upload_file_request);
  107.          URLConnection var4 = var16.openConnection();
  108.          var4.setDoOutput(true);
  109.          var4.setDoInput(false);
  110.          var4.setAllowUserInteraction(true);
  111.          OutputStream var5 = var4.getOutputStream();
  112.          String var6 = "-----------------------------1305578967122\r\n" + "Content-Disposition: form-data; name=\"FileName\"; filename=\"" + var1 + "\"\r\n" + "Content-Type: text/plain\r\n\r\n";
  113.          var6.getBytes(0, var6.length(), buffer, 0);
  114.          var5.write(buffer, 0, var6.length());
  115.  
  116.          try {
  117.             File var7 = new File(var1);
  118.             long var19 = var7.length();
  119.             FileInputStream var10 = new FileInputStream(var1);
  120.             int var12 = 0;
  121.  
  122.             int var11;
  123.             while((var11 = var10.read(buffer)) > 0) {
  124.                var12 += var11;
  125.                var5.write(buffer, 0, var11);
  126.                ((Applet)this).showStatus("Reading file...  " + String.valueOf((long)(var12 * 100) / var19) + "% done");
  127.             }
  128.  
  129.             var10.close();
  130.          } catch (Exception var14) {
  131.             String var8 = ((Throwable)var14).getMessage();
  132.             ((Applet)this).showStatus(var8);
  133.          }
  134.  
  135.          String var18 = "\r\n-----------------------------1305578967122\r\n" + "Content-Disposition: form-data; name=\"Upload\"\r\n\r\n" + "Upload\r\n" + "-----------------------------1305578967122--\r\n";
  136.          var18.getBytes(0, var18.length(), buffer, 0);
  137.          var5.write(buffer, 0, var18.length());
  138.          ((Applet)this).showStatus("Sending data over the Internet...");
  139.          var5.close();
  140.          AppletContext var20 = ((Applet)this).getAppletContext();
  141.          String var9 = String.valueOf(System.currentTimeMillis());
  142.          var16 = new URL(var2, this.m_call_this_when_done_request + "/" + var9);
  143.          ((Applet)this).showStatus("Data transfer completed");
  144.          var20.showDocument(var16);
  145.          ((Applet)this).showStatus("Waiting for replay");
  146.       } catch (Exception var15) {
  147.          String var3 = ((Throwable)var15).getMessage();
  148.          ((Applet)this).showStatus(var3);
  149.       }
  150.    }
  151. }
  152.